#include<iostream>
using namespace std;
int a[100];
int place[100][10];
bool vis[10];

bool check(int cnt,int x,int y)
{
	for(int i=x-1,j=y-1;i>=1 && j>=1;i--,j--)
		if(place[cnt][i]==j)
			return false;
	for(int i=x-1,j=y+1;i>=1 && j<=8;i--,j++)
		if(place[cnt][i]==j)
			return false;
	return true;
}

void dfs(int cnt,int k)
{
	if(cnt==93)
		return ;
	if(k==9)
		dfs(cnt+1,0);
	for(int i=1;i<=8;i++)
	{
		if(!vis[i] && check(cnt,k,i))
		{
			place[cnt][k]=i;
			vis[i]=true;
			dfs(cnt,k+1);
			vis[i]=false;
		}
	}
}


int main()
{
	int n,x;
	cin>>n;
	dfs(1,1);
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=8;j++)
			cout<<place[a[i]][j]; 
		cout<<endl;
	}
    return 0;
}
